var payment={}
var channels=null

function plusReady1(){
    // 在这里调用plus api
    //获取支付通道
    plus.payment.getChannels(function(data){
      channels=data
    },function(){
      mui.toast('获取失败')
    })
}
if(window.plus){
    plusReady1();
}else{
    document.addEventListener('plusready',plusReady1,false);
}

//判断用户点击的时候取哪一个支付通道
function fGetPayChannel(cb_channel){
  // ALI_APP aliapy
  // WX_APP wxpay
  var cb_channel_id=''  
  switch(cb_channel){
    case 'ALI_APP':
          cb_channel_id='alipay';
          break;
    case 'WX_APP':
          cb_channel_id='wxpay';
          break;
    default: 
          break;
  }
  for(var i in channels){
    if(channels[i].id===cb_channel_id){
      return channels[i]
    }
  }
  return null
}

//生成订单号
payment.orderNumber=function(){
  var random=Math.floor(Math.random()*1000000000+1000000000)
  return random+'0'
}

//支付过程
payment.payReq=function(payData,successCb,errorCb){
  doPay(payData,successCb,errorCb)
}


//支付了
function doPay(payData,successCb,errorCb){
  // 1.发送请求
  mui.ajax('https://apisz.beecloud.cn/2/rest/app/bill',{
    data: JSON.stringify(payData),
    type:'post',
    dataType: "json",
    contentType: 'application/json',
    success:function(data){
      var paySrc=''
      //代表后端给前端返回的数据没有问题,可以进行唤醒第三方支付了
      if(data.result_code==0){
        var getPayChannel=fGetPayChannel(payData.channel)
        // console.log(JSON.stringify(getPayChannel))
        if(getPayChannel){
          if(getPayChannel.id==='alipay'){
            //支付宝支付
            paySrc=data.order_string
          }else{
            //微信支付
            var staement={
              appid: data.app_id,
              noncestr: data.nonce_str,
              package: data.package,
              prepayid: data.prepay_id,
              partnerid: data.partner_id, 
              timestamp: data.timestamp,
              sign: data.pay_sign
            }
            paySrc=JSON.stringify(staement)
          }
          //唤醒第三方进行支付操作
          function plusReady2(){
              // 在这里调用plus api
              plus.payment.request(getPayChannel,paySrc,successCb,errorCb)
          }
          if(window.plus){
              plusReady2();
          }else{
              document.addEventListener('plusready',plusReady2,false);
          }
        }
      }
    }
  })
}
